/**
 * 
 */
package com.cqcis.uip.module.salary.oper.service.impl.welfare;

import java.util.Calendar;

import com.cqcis.uip.base.framework.utils.StringUtil;
import com.cqcis.uip.base.framework.utils.TimeUtil;
import com.cqcis.uip.module.salary.oper.domain.Employe;
import com.cqcis.uip.module.salary.oper.domain.SalaryMain;
import com.cqcis.uip.module.salary.oper.service.WelfareService;

/**
 * @author 李世军
 *
 * 创建于 2012-3-7 下午02:16:30
 */
public class WelfareServiceImpl implements WelfareService {

	public void setSalaryMain(Employe e, SalaryMain s) {
		s.setDayfee(getBirthdayFee(e)) ;
		s.setMonthfee(getMonthFee(e)) ;
		s.setYearfee(getYearFee(e)) ;
	}
	
	public static void main(String[] args) {
		
	}
	
	/* (non-Javadoc)
	 * @see com.cqcis.uip.module.salary.oper.service.WelfareFeeService#getYearFee(com.cqcis.uip.module.salary.oper.domain.Employe)
	 */
	private float getYearFee(Employe e) {
		// 工龄工资:自正式入职满一年，从第二年计算，每年递增50元;
		if(StringUtil.hasText(e.getPositive_data())){
			Calendar current = Calendar.getInstance() ;
			Calendar positive = Calendar.getInstance() ;
			positive.setTime(TimeUtil.getDate(e.getPositive_data(), "yyyy-MM-dd")) ;
			int y = current.get(Calendar.YEAR)-positive.get(Calendar.YEAR) ;
			if(y>1){
				return 50*(y-1) ;
			}
			if(y>0 && current.get(Calendar.MONTH)>(positive.get(Calendar.MONTH)+1)){
				return 50*(y) ;
			}
		}
		
		return 0;
	}
	
	/* (non-Javadoc)
	 * @see com.cqcis.uip.module.salary.oper.service.WelfareFeeService#getMonthFee(com.cqcis.uip.module.salary.oper.domain.Employe)
	 */
	private float getMonthFee(Employe e) {
		// 全勤奖:当月无任何迟到、早退和请假等,奖励现金：100元 ;
		
		return 0;
	}

	/* (non-Javadoc)
	 * @see com.cqcis.uip.module.salary.oper.service.WelfareFeeService#getBirthdayFee(com.cqcis.uip.module.salary.oper.domain.Employe)
	 */
	private float getBirthdayFee(Employe e) {
		// 生日福利:在生日当月享受 ;(取消)
//		String birtyday = e.getBirthday() ;
//		if(StringUtil.hasText(birtyday)){
//			if(TimeUtil.getTimeStr(new Date(), "yyyy-MM").equals(birtyday.substring(0, 7))){
//				return 200L ;
//			}
//		}
		
		return 0L;
	}
	
}
